<?php $mikron->Page->StartBody(); ?>

<table align="center" border="0">
<tr>
<td align="center">

<?php 

    $needform = true;
    $errortext = null;
    
    if(isset($_GET['cancelbutton']))
    {
        ob_clean();
        header('Location: /');
        exit;
    }
    
    if(isset($_REQUEST['form_values']))
    {
        $form_values = $_REQUEST['form_values'];
        if(array_key_exists('login', $form_values) &&
           array_key_exists('password', $form_values) &&
           array_key_exists('password2', $form_values) &&
           array_key_exists('email', $form_values) &&
           array_key_exists('captcha', $form_values)
           )
        {
            $login = $form_values['login'];
            $password = $form_values['password'];
            $password_retype = $form_values['password2'];
            $email = $form_values['email'];
            $captcha = $form_values['captcha']; 
            if(!(isset($_SESSION["captcha"]) && $_SESSION["captcha"]===$captcha))
            {
                $errortext = "Неверный код подтверждения.";
            }
            if($email == ""){$errortext="Некорректный адрес электронной почты.";}
            if($login == ""){$errortext="Некорректный логин."; $needform = true;}
            if($password != $password_retype){$errortext="Введенные пароли не совпадают.";}
        }
        else
        {
            $errortext = "Некорректная форма регистрации.";
        }
        if(is_null($errortext))
        {
            try
            {
                /*$ref = null;
                if(isset($_COOKIE['referal']))
                {
                    $ref = $_COOKIE['referal'];
                    $ref2 = quote_smart($ref);
                    $ref = $mikron->EntityManager->Query("T_USER", null, "`login`=$ref2");
                    $ref = count($ref)==1 ? $ref[0] : null;
                }
                */
                $cabinet = new T_USER();
                $cabinet->login->value = $login;
                $cabinet->password->value = $password;
                $cabinet->email->value = $email;
                /*if(!is_null($ref->id))
                {
                    $cabinet->referal->value = $ref->id;
                }*/
                $cabinet->Save();
                $needform = false;
                ob_clean();
                header("Location: /?reg");
                exit;
                // Спасибо за регистрацию, теперь Вы можете войти в свой аккаунт.
            }
            catch(Exception $ex)
            {
                if(mysql_errno()==1062)
                {
                    $errortext="Такой логин или адрес электронной почты уже заняты.";
                }
                else
                {
                    $errortext="Внутренняя ошибка сервера при регистрации.".$ex->getMessage();
                }
            }
        }
    }

    if($needform)
    {
        ?>
        <div style="padding-left: .5em; padding-bottom: .5em; ">{{$REGISTERINFO}}</div>
        <table><tr><td>
        {{nicewindow style=help caption="Регистрация"}}
        <form action="/reg/" method="post" id="regform" name="regform" onsubmit="return prevalidate(this, validatelist);">
        <table cellspacing="0" cellpadding="2" border="0">
            <tr><td>Логин:</td><td><input name="form_values[login]" size="32" maxlength="32"></td></tr>
            <tr><td>Пароль:</td><td><input name="form_values[password]" size="32" maxlength="32" type="password"></td></tr>
            <tr><td>Повтор пароля:</td><td><input name="form_values[password2]" size="32" maxlength="32" type="password"></td></tr>
            <tr><td>Фамилия:</td><td><input name="form_values[lastname]" size="32" maxlength="32"></td></tr>
            <tr><td>Имя:</td><td><input name="form_values[firstname]" size="32" maxlength="32"></td></tr>
            <tr><td>Отчество:</td><td><input name="form_values[fathername]" size="32" maxlength="32"></td></tr>
            <tr><td>Дата рождения:</td><td><input name="form_values[birthday]" size="32" maxlength="32"></td></tr>

            <tr><td>Электронная почта:</td><td><input name="form_values[email]" size="32" maxlength="32" type="email"></td></tr>
            <tr><td><img src="/mikron/captcha/captcha.php"></td><td><input name="form_values[captcha]" size="5" maxlength="5"></td></tr>
            <tr><td>&nbsp;</td><td><input type="submit" name="submitform" value="Зарегистрироваться">
            <!-- input type="submit" name="cancelbutton" onclick="cancelpressed=1;" value="Назад" -->
            <br /><a href="/">Назад</a>
            </td></tr>
        </table>
        </form>
        {{/nicewindow}}
        </td></tr></table>

        <?php
        if(!is_null($errortext))
        {
            echo "{{nicewindow style=error caption=\"Внимание\"}}$errortext{{/nicewindow}}";
        }
        ?>
        
        <script type="text/javascript" src="../mikron/functions.js"></script>
        <script type="text/javascript">
            var cancelpressed = 0;
            function prevalidate(o, validatelist)
            {
                return validate(o, validatelist);
                /*
                if(cancelpressed==0)
                {
                    return validate(this, validatelist);
                }
                return true;
                */
            }
            // правила валидации формы
            var validatelist = [
                ['form_values[login]', 'required', 'alert("Укажите логин.");'],
                ['form_values[password]', 'required', 'alert("Введите пароль.");'],
                ['form_values[password2]', 'required', 'alert("Введите повторный пароль.");'],
                ['form_values[lastname]', 'required', 'alert("Введите фамилию.");'],
                ['form_values[firstname]', 'required', 'alert("Введите имя.");'],
                ['form_values[fathername]', 'required', 'alert("Введите отчество.");'],
                ['form_values[birthday]', 'required', 'alert("Введите дату рождения.");'],
                ['form_values[email]', 'required', 'alert("Введите адрес электронной почты.");'],
                ['form_values[captcha]', 'required', 'alert("Введите число с картинки.");']
                ];
            // autofocus
            try
            {
                var ele = document.getElementById('form_values[login]');
                ele.focus();
            }
            catch(err)
            {
                // do nothing
            }
            
        </script>
    
</td>
</tr>
</table>

<?php } $mikron->Page->EndBody(); ?>